package com.example.videopublish.util

import android.content.Context
import android.graphics.Bitmap
import android.net.Uri
import java.io.File
import java.io.FileOutputStream
import java.io.IOException

/**
 * 缩略图处理工具类
 */
object ThumbnailUtils {
    
    /**
     * 将Bitmap保存到缓存目录
     * 
     * @param context 上下文
     * @param bitmap 要保存的位图
     * @param fileName 文件名（无需扩展名）
     * @return 保存后的文件URI字符串，失败则返回null
     */
    fun saveBitmapToCache(context: Context, bitmap: Bitmap, fileName: String): String? {
        return try {
            // 获取应用缓存目录
            val cacheDir = context.externalCacheDir ?: context.cacheDir
            
            // 创建文件
            val file = File(cacheDir, "$fileName.jpg")
            
            // 将位图写入文件
            FileOutputStream(file).use { out ->
                bitmap.compress(Bitmap.CompressFormat.JPEG, 90, out)
            }
            
            // 返回文件路径
            Uri.fromFile(file).toString()
        } catch (e: IOException) {
            e.printStackTrace()
            null
        }
    }
    
    /**
     * 清理缓存中的缩略图文件
     * 
     * @param context 上下文
     * @param fileNamePattern 文件名模式
     */
    fun clearThumbnailCache(context: Context, fileNamePattern: String) {
        try {
            val cacheDir = context.externalCacheDir ?: context.cacheDir
            val files = cacheDir.listFiles { file ->
                file.name.startsWith(fileNamePattern)
            }
            files?.forEach { it.delete() }
        } catch (e: Exception) {
            e.printStackTrace()
        }
    }
} 